public class Demo0 {
    public static void main(String[] args) {
        /*
        有三个线程，线程名称分别为：a，b，c。
        每个线程打印自己的名称。
        需要让他们同时启动，并按 c，b，a的顺序打印
        */
        Thread tc = new Thread(()->{
            System.out.println("c");
        });
        Thread tb = new Thread(()->{
            try {
//                等待tc完成
                tc.join();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println("b");
        });
        Thread ta = new Thread(()->{
            try {
                tb.join();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println("a");
        });
        ta.start();
        tc.start();
        tb.start();
//        不会造成死锁  因为此代码是一个单向的等待链（ta 等待 tb，tb 等待 tc)
    }
}
